package com.zsrt.java.day20161227.zp.demo06;

import java.util.Arrays;
import java.util.Scanner;

/**
 *   String数组11 开始的时候没有一个人
 * 
 *  1 增加 Scanner  刘浩  张无忌  赵敏
 * 	2   删除 Scanner  张无忌
 *	3   修改  请输入要修改的人名  赵敏
 *	              请输入修改后的人名   周芷若
 *	  
 *	4   查询    周芷若   小昭
 *		周芷若在  下标是1
 *		小昭不在   下标是-1
 *	5   退出
 * @author zsrt
 *
 */

public class Crud {

	public static void main(String[] args) {
		
		String[] names = new String[11];
		
		Scanner sc = new Scanner(System.in);
		
		while(true){
			System.out.println("请输入操作数：1为增加人员 2为查询人员 3为修改人员 4为删除人员 5为退出 6查看所有人员");
			int useNum = sc.nextInt();
			
			if(useNum==1){
				//增加人员
				System.out.println("请输入你要添加人员的姓名：");
				String temp = sc.next();
				names = add(names,temp);
			}else if(useNum==2){
				//查询人员
				System.out.println("请输入你要查询人员的姓名：");
				String temp = sc.next();
			    int xb = query(names,temp);
			    System.out.println(names[xb]+"在呢！学号(下标)是："+xb);
			}else if(useNum==3){
				//修改人员
				System.out.println("请输入你要修改人员的姓名：");
				String temp = sc.next();
				System.out.println("请输入修改后的名字：");
				String md = sc.next();
				modify(names,temp,md);
			}else if(useNum==4){
				//删除人员
				System.out.println("请输入要删除人员的姓名：");
				String temp = sc.next();
				
				names = delete(names,temp);
			}else if(useNum==5){
				//退出
				sc.close();
				System.out.println("已成功退出！");
				break;
			}else if(useNum==6){
				//查看所有人员
				System.out.println(Arrays.toString(names));
			}else{
				System.out.println("请输入正确的操作数！");
			}
		}
		
	}
	
	/**
	 * 添加人员
	 * @param array 人员数组
	 * @param name  人员姓名
	 * @return
	 */
	public static String[] add(String[] array,String name){
		
		int index = 0;
		for(int i=0;i<array.length;i++){
			if(array[index]==null){
				array[index] = name;
				System.out.println("添加人员 "+name+" 成功！");
				break;
			}else if(i==array.length-1){
				System.out.println("很抱歉，我们班级认识已满，无法再添加！");
			}else{
				index++;
			}
		}
		return array;
	}
	
	/**
	 * 查询人员
	 * @param array 人员数组
	 * @param name  人员姓名
	 * @return
	 */
	public static int query(String[] array,String name){
		int num = 0;
		for(int i=0;i<array.length;i++){
			if(array[i].equals(name)){
				num =i;
				break;
			}
		}
		return num;
	}
	
	/**
	 * 修改人员姓名
	 * @param array      人员数组
	 * @param name       人员姓名
	 * @param modifyName 修改后的名字
	 * @return
	 */
	public static String[] modify(String[] array,String name,String modifyName){
		
		for(int i=0;i<array.length;i++){
			if(array[i].equals(name)){
				array[i] = modifyName;
				System.out.println("已成功将姓名："+name+" 修改为："+modifyName);
				break;
			}
		}
		return array;
	}
	
	/**
	 * 删除人员
	 * @param array 人员数组
	 * @param name  人员姓名
	 * @return
	 */
	public static String[] delete(String[] array,String name){
		
		/*for(int i=0;i<array.length;i++){
			if(array[i].equals(name)){
				System.out.println("已成功将人员："+name+" 删除！");
				break;
			}
		}*/
		
		int tempNum = query(array,name);
		
		array[tempNum] = "null";
		System.out.println("删除姓名为："+name+"的人员成功！");
		
		return array;
	}
	
}
